package com.objects.demo01;

public class Test {
    public static void main(String[] args) {
        /**
         * getClass()方法 学习
         * 结果：用于获取对象的运行时对象的类。
         *
         */
        Student student = new Student();
        System.out.println("student 对象运行时对应的类是 "+student.getClass()); // class com.objects.demo01.Student
        Object o = new Object();
        System.out.println("o 对象运行时对应的类是 "+o.getClass()); // class java.lang.Object
        // 获取类的名称（包含包名）
        System.out.println(student.getClass().getName()); // com.objects.demo01.Student
        // 单独获取名称（仅仅是类的名称）
        System.out.println(student.getClass().getSimpleName());


        System.out.println("=======hashCode方法======");
        /**
         * hashCode() 方法用于获取对象的 hash 值。
         * hashCode 根据对象的地址或数字等信息使用hash算法计算出来一个 int 类型的值
         * 相同对象一般返回相同的哈希值（码） -- 地址相同
         */
        Student s1 = new Student();
        Student s2 = new Student();
        System.out.println(s1.hashCode()); // s1 对象hash值
        System.out.println(s2.hashCode()); // s2 对象的hash
        Student s3 = s1;
        System.out.println("s3的 hash值是 "+s3.hashCode());
        if(s3.hashCode() == s1.hashCode()) {
            System.out.println("相等");
        } else {
            System.out.println("不相等");
        }
    }
}
